---
sidebar_label: 附加功能
---

import CodeBlock from "@theme/CodeBlock";

import TimeoutExample from "!!raw-loader!@examples/models/embeddings/openai_timeout.ts";


# Embeddings: 嵌入

我们为聊天模型提供了许多附加功能。在下面的示例中，我们将使用“OpenAI嵌入”模型。

## 添加超时

默认情况下，LangChain将无限期地等待模型提供者的响应。如果你想添加超时，可以在实例化模型时传递一个毫秒级的`timeout`选项。例如，对于OpenAI# 

<CodeBlock language="typescript">{TimeoutExample}</CodeBlock>


目前，`timeout`选项仅支持OpenAI模型。

## 处理速率限制

一些提供者具有速率限制。如果你超过速率限制，将会收到错误。为了帮助你处理这个问题，LangChain在实例化嵌入模型时提供了`maxConcurrency`选项。该选项允许你指定要向提供者发送的最大并发请求数量。如果你超过了这个数字，LangChain将自动将你的请求排队等待之前的请求完成后再发送。

例如，如果你设置`maxConcurrency: 5`，那么LangChain一次只会发送5个请求到提供者。如果你发出10个请求，前5个将立即发送，接下来的5个将排队等待。一旦前5个请求之一完成，队列中的下一个请求将被发送。

要使用此功能，只需在实例化LLM时传递`maxConcurrency: <number>`即可。例如:

```typescript
import { OpenAIEmbeddings } from "langchain/embeddings/openai";



const model = new OpenAIEmbeddings({ maxConcurrency: 5 });

```


## 处理API错误


如果模型提供者从他们的API返回错误，默认情况下LangChain将重试6次指数退避。这使得无需任何额外的努力即可进行错误恢复。如果要更改此行为，您可以在实例化模型时传递`maxRetries`选项。例如：#


```typescript

import { OpenAIEmbeddings } from "langchain/embeddings/openai";



const model = new OpenAIEmbeddings({ maxRetries: 10 });

```

